MATLAB®, provided by The MathWorks, Inc. of Natick, Mass. is an interactive programming and development application that can implement a variety of computing tasks in engineering and science. MATLAB has the ability to execute other executable programs. Some of the tasks that MATLAB can perform range from data acquisition and analysis to application development. The MATLAB environment integrates mathematical computing, visualization, and technical programming language. MATLAB includes built-in interfaces that provide access to and import data from instruments, files, and external databases and programs.
In addition, MATLAB can integrate external routines written in C, C++, Fortran, and Java with MATLAB applications. As such, MATLAB provides an example of an interactive programming and/or development environment that can work in conjunction with routines provided external to MATLAB, including those provided by third party providers. Users of MATLAB, and similar programs, often have the need to communicate with other software or hardware components using programs like MATLAB.
As a part of the interactive environment, MATLAB enables the creation of graphics that are displayed in operating system windows. The operating system windows are known as “figure windows”. The figure windows that present the graphics often also include some form of user interface control that enables a user to provide some form of input or instruction to the interactive environment. Controls are generally objects in a window that can be individually selected and manipulated. Examples of controls include pull down menus, scroll bars, push buttons, slide buttons, dials, and the like.
Microsoft Windows® provides frameworks creating user interface controls known as ActiveX. ActiveX controls are a special variety of controls that support COM (component object model). MATLAB provides a bridge for hosting ActiveX controls and .NET controls in figure windows.
Sun Microsystems provides a Java Component API for creating Java components. MATLAB provides an API for creating Java components and a bridge for hosting such Java components in figure windows.
MATLAB and other interactive development environments, however, do not support dynamic hosting of both ActiveX controls and Java components.